package com.comeval.logica;

import com.comeval.modelo.Pedido;
import com.comeval.persistencia.IPedidoDAO;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author DianaMarcela
 */
@Stateless
public class LogicaPedido implements LogicaPedidoLocal {

    @EJB
    private IPedidoDAO pedidoDAO;

    @Override
    public void registrarPedido(Pedido pedido) throws Exception {
        if (pedido == null) {
            throw new Exception("El pedido no tiene información");
        }
        Pedido objPedido = pedidoDAO.consultarPorCodigo(pedido.getCodigopedido());
        if (objPedido != null) {
            throw new Exception("El codigo ya existe para un pedido");
        }
        pedidoDAO.registrarPedido(pedido);
    }

    @Override
    public void modificarPedido(Pedido pedido) throws Exception {
        if (pedido == null) {
            throw new Exception("El pedido no tiene información");
        }
        if (pedido.getCodigopedido() == null) {
            throw new Exception("El pedido debe tener un codigo ");
        }
        Pedido objPedido = pedidoDAO.consultarPorCodigo(pedido.getCodigopedido());
        if (objPedido == null) {
            throw new Exception("El pedido a modificar no existe");
        }
        pedidoDAO.modificarPedido(pedido);
    }

    @Override
    public void eliminarPedido(Pedido pedido) throws Exception {
        Pedido objPedido = pedidoDAO.consultarPorCodigo(pedido.getCodigopedido());
        if (objPedido == null) {
            throw new Exception("El pedido a eliminar no existe");
        }
        pedidoDAO.eliminarPedido(objPedido);
    }

    @Override
    public List<Pedido> consultarPedidos() throws Exception {
        return pedidoDAO.consultarPedidos();
    }

    @Override
    public Pedido consultarPorCodigo(Long codigoPedido) throws Exception {
        if (codigoPedido == null) {
            throw new Exception("El codigo es obligatorio");
        }
        return pedidoDAO.consultarPorCodigo(codigoPedido);

    }

}
